<?php
defined('YF_PATH') or exit();
/**
 * 主要加载对象和对象处理方法
 *
 * @author yifa
 */
class F {
//put your code here
        /**
        * 加载引入文件
        * @param str $baseUrl 加载文件的路径
        * @param int $type 引入的方式
         * @return null 引入的文件不存在
        */
       public static function loadFile($baseUrl, $type = 0){
               if(is_file($baseUrl)){
                        switch ($type){
                                case 0 :
                                        require $baseUrl;
                                        break;
                                case 1 :

                                        break;
                                default :
                                        break;
                        }
               }else{
                       return null;
               }

       }
       
       /**
        * 加载有返回值的文件
        * @param str $baseUrl 加载文件的路径
        * @param int $type 引入的方式
        * @return array 返回的数据
        */
        public static function loadArray($baseUrl, $type = 0){
               if(is_file($baseUrl)){ 
                        switch ($type){
                                case 0 :
                                        return require $baseUrl;
                                case 1 :

                                        break;
                                default :
                                        break;
                        }
               }else{
                   return array();    
               }

       }
       
       /**
        * 加载文件件,默认java风格com.util.array 加载的文件存在.使用#代替,默认系统根目录,并且.class.php结尾
        * @param str $baseUrl 加载文件的路径
        * @return null 引入的文件不存在
        */
       public static function import($baseUrl){
               $first = explode('.', $baseUrl);
               if(in_array($first[0], array('ORG'))){
                       $path = YF_PATH.'Extend/';
               }else{
                       $path = BASE_PATH;
               }
               $baseUrl = str_replace('.', '/', $baseUrl);
               $baseUrl = str_replace('#', '.', $baseUrl);
               $baseUrl = $path.$baseUrl.'.class.php';
               if(is_file($baseUrl)){
                       return require $baseUrl;
               }
       }


       /**
        * 实例化一个Model
        * @param str $name 要实例化的模型名称
        */
       public static function Model($name=''){
               if(!empty($name)){
                       $className = $name.'Model';
                       if(is_file(APP_PATH.'Model/'.$className.'.class.php')){
                               F::loadFile(APP_PATH.'Model/'.$className.'.class.php');
                               return new $className();
                       }else{
                               throwException('Model not exist');
                       }
               }else{
                       return new Model();
               }
       }
       
       /**
        * 取得当前访问的模块
        */
       public static function getModelName(){
               global $Config;
               switch ($Config['URL_MODEL']){
                       case 0 :
                                if(isset($_GET[$Config['DEFAULT_MODULE_NAME']]) && !empty($_GET[$Config['DEFAULT_MODULE_NAME']])){
                                        return $_GET[$Config['DEFAULT_MODULE_NAME']];
                                }else{
                                        return $Config['DEFAULT_MODULE'] ? $Config['DEFAULT_MODULE'] : 'Index';
                                }
                        case 1 :
                               if(isset($_GET[$Config['URL_PATHINFO_ROUTE']]) && !empty($_GET[$Config['URL_PATHINFO_ROUTE']])){
                                       $route = explode($Config['URL_PATHINFO_DEPR'], $_GET[$Config['URL_PATHINFO_ROUTE']]);
                                       return $route[0];
                               }else{
                                       return $Config['DEFAULT_MODULE'] ? $Config['DEFAULT_MODULE'] : 'Index';
                               }
                       default :
               }
       }
       
       /**
        * 取得当前访问的方法
        */
       public static function getActionName(){
               global $Config;
               switch ($Config['URL_MODEL']){
                       case 0 :
                              if(isset($_GET[$Config['DEFAULT_ACTION_NAME']]) && !empty($_GET[$Config['DEFAULT_ACTION_NAME']])){
                                        return $_GET[$Config['DEFAULT_ACTION_NAME']];
                                }else{
                                        return $Config['DEFAULT_ACTION'] ? $Config['DEFAULT_ACTION'] : 'index';
                                } 
                                break;
                       case 1 :
                               if(isset($_GET[$Config['URL_PATHINFO_ROUTE']]) && !empty($_GET[$Config['URL_PATHINFO_ROUTE']])){
                                       $route = explode($Config['URL_PATHINFO_DEPR'], $_GET[$Config['URL_PATHINFO_ROUTE']]);
                                       $routeA = $Config['DEFAULT_ACTION'] ? $Config['DEFAULT_ACTION'] : 'index';
                                       if($route[0] && $route[1]){
                                               $routeA = $route[1];
                                       }
                                       return $routeA;
                               }else{
                                       return $Config['DEFAULT_ACTION'] ? $Config['DEFAULT_ACTION'] : 'index';
                               }
                       default :
                               
               }
               
       }
       
}
?>
